package com.intrbiz.bergamot.agent; import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.Set; import java.util.TreeSet; import javax.net.ssl.SSLEngine; public class TLSUtils { public static final class PROTOCOLS { public static final String SSLv3 = "SSLv3"; public static final String TLSv1 = "TLSv1"; public static final String TLSv1_1 = "TLSv1.1"; public static final String TLSv1_2 = "TLSv1.2"; public static final String[] SAFE_PROTOCOLS = { TLSv1, TLSv1_1, TLSv1_2 }; public static final String[] ALL_PROTOCOLS = { SSLv3, TLSv1, TLSv1_1, TLSv1_2 }; } public static String[] computeSupportedProtocols(SSLEngine sslEngine, String[] wantedProtocols) { Set<String> supported = new TreeSet<String>(Arrays.asList(sslEngine.getSupportedProtocols())); // filter the wanted protocols with that is supported List<String> protocols = new LinkedList<String>(); for (String wanted : wantedProtocols) { if (supported.contains(wanted)) { protocols.add(wanted); } } return protocols.toArray(new String[0]); } }